@信仰
2年前 提问
1个回答

网络负载均衡的调度算法有哪些

一颗小胡椒
2年前

网络负载均衡的调度算法有以下这些:

  • 轮询算法:这是最简单的调度算法,LB按照顺序将请求一次性转发给后端的真实服务器(RS),并不参考后端RS的处理能力和响应速度。但是在大多数的真实环境中,RS的状态各不相同,这种算法无法满足合理利用资源的要求。

  • 加权轮询算法:带权重的轮询是在轮询算法的基础上为后端RS赋予权重值,权重值越高的RS被分配的请求越多,这种方式适合按照服务器性能的高低赋予不同的权重值,从而达到合理的资源利用。

  • 带复制的基于局部性最少连接算法:与LBLC场景相同,常用于Cache集群系统。但是LBLC是维护一个目的IP到一台服务器的映射,而LBLCR算法是用于维护一个目的IP到一组服务器的映射。即,根据请求的目标IP找出对应的服务器组,按“最少连接”原则从服务器组中选出一台服务器来响应,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个Cache集群中选出一台服务器,将该服务器加入到服务器组中,再将请求发送到该服务器。

  • 最少连接算法:该算法会将请求分发到连接数最少的RS上,连接数越少,说明RS相对空闲,从而实现均衡的负载。

  • 基于局部性的最少连接算法:这是一种基于报文目的IP的负载均衡调度方式,常用于Cache集群系统。Cache集群中客户请求报文的目的IP地址是变化的,目的是将相同目的IP的请求调度到同一台RS上响应,以便提高每台RS的访问局部性和主存Cache的命中率,从而提升整个集群的处理能力。该算法根据请求的目的IP地址首先找出该目的IP地址最近使用的服务器,若该服务器是可用的且没有超载,会将请求发送到该服务器;若服务器不存在,或者该服务器超载且有其他服务器处于较低的工作负载状态,则用“最少连接”原则选出一个可用的服务器,将请求发送到该服务器。

  • 加权最少连接算法:该算法在采用最少连接数的同时为RS分配权重,目的是在资源实际使用的基础上,达到人为控制连接请求的分配。

  • 目标地址散列算法:该算法是一种静态映射算法,针对请求报文的目的IP,通过一个哈希函数将一个目的IP映射到一台服务器。DH算法将请求的目的IP作为Hash Key并从静态分配的散列表中找出对应的服务器。如果该服务器是可用的并且没有超载,则将请求发送给该服务器,否则返回空。

  • 源地址散列算法:SH算法与DH算法相反,它根据请求中的源IP地址作为Hash Key并从静态分配的散列表中找出对应的服务器。如果该服务器是可用的并且没有超载,则将请求发送给该服务器,否则返回空。